﻿2026-07-08T11:38:16.2988575Z ##[group]Run ver="${GITHUB_REF_NAME#v}"   # v0.1.2 -> 0.1.2
2026-07-08T11:38:16.2989036Z [36;1mver="${GITHUB_REF_NAME#v}"   # v0.1.2 -> 0.1.2[0m
2026-07-08T11:38:16.2989318Z [36;1mnotes="dist/RELEASE_NOTES.md"[0m
2026-07-08T11:38:16.2989747Z [36;1m# Literal string matching (index, not regex) so the section header is[0m
2026-07-08T11:38:16.2990213Z [36;1m# matched identically across awk dialects — no bracket-escaping traps.[0m
2026-07-08T11:38:16.2990555Z [36;1mawk -v want="## [${ver}]" '[0m
2026-07-08T11:38:16.2990802Z [36;1m  index($0, want) == 1 { grab=1; next }[0m
2026-07-08T11:38:16.2991073Z [36;1m  grab && index($0, "## [") == 1 { exit }[0m
2026-07-08T11:38:16.2991326Z [36;1m  grab { print }[0m
2026-07-08T11:38:16.2991551Z [36;1m' CHANGELOG.md > "$notes"[0m
2026-07-08T11:38:16.2991800Z [36;1mif ! grep -q '[^[:space:]]' "$notes"; then[0m
2026-07-08T11:38:16.2992362Z [36;1m  echo "::error::CHANGELOG.md has no '## [$ver]' section — add the user-facing changelog for this release before tagging (see docs/RELEASE-RUNBOOK.md)."[0m
2026-07-08T11:38:16.2992920Z [36;1m  exit 1[0m
2026-07-08T11:38:16.2993097Z [36;1mfi[0m
2026-07-08T11:38:16.2993335Z [36;1mecho "----- release body for ${GITHUB_REF_NAME} -----"[0m
2026-07-08T11:38:16.2993770Z [36;1mcat "$notes"[0m
2026-07-08T11:38:16.3006431Z shell: /usr/bin/bash -e {0}
2026-07-08T11:38:16.3006669Z ##[endgroup]
2026-07-08T11:38:16.3063831Z ----- release body for v0.29.1 -----
2026-07-08T11:38:16.3069425Z 
2026-07-08T11:38:16.3069777Z A reliability patch for message delivery into a live session.
2026-07-08T11:38:16.3070179Z 
2026-07-08T11:38:16.3070293Z ### Fixed
2026-07-08T11:38:16.3070426Z 
2026-07-08T11:38:16.3070679Z - A long multi-line message delivered into a live session could arrive with its
2026-07-08T11:38:16.3071213Z   opening lines cut off when the session had been cleared or checkpointed earlier
2026-07-08T11:38:16.3071977Z   in its run — the message was typed before the freshly-cleared terminal was ready
2026-07-08T11:38:16.3072454Z   to receive it. Such a message now arrives intact. (The earlier fix in 0.29.0
2026-07-08T11:38:16.3072864Z   covered only the moment a session first starts; this extends it to every clear
2026-07-08T11:38:16.3073222Z   during a session's life.)
2026-07-08T11:38:16.3073370Z 
